lfDefined = 1
lfCanRedefine = 2
lfRedefined = 4
lfUsed      = 8

ltAbsolute = 0
ltRelocSegment = 1
ltRelocAbsolute = 2
ltRelocRelative = 3

; This is internal 24 byte (for now) structure of the FASM labels during
; assembling stage.

struct TIntLabel
  .Value       dq ?     ; Value of the label
  .Flags       dw ?     ; lf**** flags.
  .DataSize    db ?
  .type        db ?     ; lt**** values.
  .SIBEx       dd ?     ; ???
  .PassDefined dw ?
  .PassUsed    dw ?
  .RelAddress  dd ?     ; Address of object section or external symbol to which this label is relative.
ends

struct TLabel
  .Children    dd ?    ; Pointer to TArray of TLabel structures.

  .iName       dd ?
  .hashName    dd ?
  .ptrIntLabel dd ? ; pointer to TIntLabel structure for assembling stage.
  .flags       dw ?
  .DataSize    db ?
  .type        db ?
  .ValueLo     dd ?
  .ValueHi     dd ?
               rb 32-$+.Children
ends

struct THashListItem
  .hashname dd ?
  .ptrName  dd ?
ends


struct TFileInfo
  .hFileName    dd ?
  .hashFileName dd ?
  .ptrLineArray dd ?
ends

struct TLineInfo
  .LineNum  dd ?
  .Address  dd ?
ends